package domain

import (
        "topsdk/util"
    )

type TaobaoOpenTradeGetTrade struct {
    /*
        交易类型列表，同时查询多种交易类型可用逗号分隔。默认同时查询guarantee_trade, auto_delivery, ec, cod的4种交易类型的数据 可选值 fixed(一口价) auction(拍卖) guarantee_trade(一口价、拍卖) auto_delivery(自动发货) independent_simple_trade(旺店入门版交易) independent_shop_trade(旺店标准版交易) ec(直冲) cod(货到付款) fenxiao(分销) game_equipment(游戏装备) shopex_trade(ShopEX交易) netcn_trade(万网交易) external_trade(统一外部交易)o2o_offlinetrade（O2O交易）step (万人团)nopaid(无付款订单)pre_auth_type(预授权0元购机交易)     */
    Type  *string `json:"type,omitempty" `

    /*
        交易创建时间。格式:yyyy-MM-dd HH:mm:ss     */
    Created  *util.LocalTime `json:"created,omitempty" `

    /*
        交易编号 (父订单的交易编号)     */
    Tid  *string `json:"tid,omitempty" `

    /*
        交易状态。可选值:    * TRADE_NO_CREATE_PAY(没有创建支付宝交易)    * WAIT_BUYER_PAY(等待买家付款)    * SELLER_CONSIGNED_PART(卖家部分发货)    * WAIT_SELLER_SEND_GOODS(等待卖家发货,即:买家已付款)    * WAIT_BUYER_CONFIRM_GOODS(等待买家确认收货,即:卖家已发货)    * TRADE_BUYER_SIGNED(买家已签收,货到付款专用)    * TRADE_FINISHED(交易成功)    * TRADE_CLOSED(付款以后用户退款成功，交易自动关闭)    * TRADE_CLOSED_BY_TAOBAO(付款以前，卖家或买家主动关闭交易)    * PAY_PENDING(国际信用卡支付付款确认中)    * WAIT_PRE_AUTH_CONFIRM(0元购合约中)	* PAID_FORBID_CONSIGN(拼团中订单或者发货强管控的订单，已付款但禁止发货)     */
    Status  *string `json:"status,omitempty" `

    /*
        商品金额（商品价格乘以数量的总金额）。精确到2位小数;单位:元。如:200.07，表示:200元7分     */
    TotalFee  *string `json:"total_fee,omitempty" `

    /*
        商品数字编号     */
    NumIid  *int64 `json:"num_iid,omitempty" `

    /*
        商品价格。精确到2位小数；单位：元。如：200.07，表示：200元7分     */
    Price  *string `json:"price,omitempty" `

    /*
        商品购买数量。取值范围：大于零的整数,对于一个trade对应多个order的时候（一笔主订单，对应多笔子订单），num=0，num是一个跟商品关联的属性，一笔订单对应多比子订单的时候，主订单上的num无意义。     */
    Num  *int64 `json:"num,omitempty" `

    /*
        订单列表     */
    Orders  *[]TaobaoOpenTradeGetOrder `json:"orders,omitempty" `

    /*
        付款时间。格式:yyyy-MM-dd HH:mm:ss。订单的付款时间即为物流订单的创建时间。     */
    PayTime  *string `json:"pay_time,omitempty" `

    /*
        卖家备注（与淘宝网上订单的卖家备注对应，只有卖家才能查看该字段）     */
    SellerMemo  *string `json:"seller_memo,omitempty" `

    /*
        买家备注（与淘宝网上订单的买家备注对应，只有买家才能查看该字段）     */
    BuyerMemo  *string `json:"buyer_memo,omitempty" `

    /*
        邮费。精确到2位小数;单位:元。如:200.07，表示:200元7分     */
    PostFee  *string `json:"post_fee,omitempty" `

    /*
        是否包含邮费。与available_confirm_fee同时使用。可选值:true(包含),false(不包含)     */
    HasPostFee  *bool `json:"has_post_fee,omitempty" `

    /*
        优惠详情     */
    PromotionDetails  *[]TaobaoOpenTradeGetPromotionDetail `json:"promotion_details,omitempty" `

    /*
        分阶段付款的订单状态（例如万人团订单等），目前有三返回状态FRONT_NOPAID_FINAL_NOPAID(定金未付尾款未付)，FRONT_PAID_FINAL_NOPAID(定金已付尾款未付)，FRONT_PAID_FINAL_PAID(定金和尾款都付)     */
    StepTradeStatus  *string `json:"step_trade_status,omitempty" `

    /*
        分阶段付款的已付金额（万人团订单已付金额）     */
    StepPaidFee  *string `json:"step_paid_fee,omitempty" `

    /*
        卖家昵称     */
    SellerNick  *string `json:"seller_nick,omitempty" `

    /*
        实付金额。精确到2位小数;单位:元。如:200.07，表示:200元7分     */
    Payment  *string `json:"payment,omitempty" `

    /*
        交易修改时间(用户对订单的任何修改都会更新此字段)。格式:yyyy-MM-dd HH:mm:ss     */
    Modified  *util.LocalTime `json:"modified,omitempty" `

    /*
        买家的openuid,入参fields中传入buyer_nick ，才能返回     */
    BuyerOpenUid  *string `json:"buyer_open_uid,omitempty" `

}

func (s *TaobaoOpenTradeGetTrade) SetType(v string) *TaobaoOpenTradeGetTrade {
    s.Type = &v
    return s
}
func (s *TaobaoOpenTradeGetTrade) SetCreated(v util.LocalTime) *TaobaoOpenTradeGetTrade {
    s.Created = &v
    return s
}
func (s *TaobaoOpenTradeGetTrade) SetTid(v string) *TaobaoOpenTradeGetTrade {
    s.Tid = &v
    return s
}
func (s *TaobaoOpenTradeGetTrade) SetStatus(v string) *TaobaoOpenTradeGetTrade {
    s.Status = &v
    return s
}
func (s *TaobaoOpenTradeGetTrade) SetTotalFee(v string) *TaobaoOpenTradeGetTrade {
    s.TotalFee = &v
    return s
}
func (s *TaobaoOpenTradeGetTrade) SetNumIid(v int64) *TaobaoOpenTradeGetTrade {
    s.NumIid = &v
    return s
}
func (s *TaobaoOpenTradeGetTrade) SetPrice(v string) *TaobaoOpenTradeGetTrade {
    s.Price = &v
    return s
}
func (s *TaobaoOpenTradeGetTrade) SetNum(v int64) *TaobaoOpenTradeGetTrade {
    s.Num = &v
    return s
}
func (s *TaobaoOpenTradeGetTrade) SetOrders(v []TaobaoOpenTradeGetOrder) *TaobaoOpenTradeGetTrade {
    s.Orders = &v
    return s
}
func (s *TaobaoOpenTradeGetTrade) SetPayTime(v string) *TaobaoOpenTradeGetTrade {
    s.PayTime = &v
    return s
}
func (s *TaobaoOpenTradeGetTrade) SetSellerMemo(v string) *TaobaoOpenTradeGetTrade {
    s.SellerMemo = &v
    return s
}
func (s *TaobaoOpenTradeGetTrade) SetBuyerMemo(v string) *TaobaoOpenTradeGetTrade {
    s.BuyerMemo = &v
    return s
}
func (s *TaobaoOpenTradeGetTrade) SetPostFee(v string) *TaobaoOpenTradeGetTrade {
    s.PostFee = &v
    return s
}
func (s *TaobaoOpenTradeGetTrade) SetHasPostFee(v bool) *TaobaoOpenTradeGetTrade {
    s.HasPostFee = &v
    return s
}
func (s *TaobaoOpenTradeGetTrade) SetPromotionDetails(v []TaobaoOpenTradeGetPromotionDetail) *TaobaoOpenTradeGetTrade {
    s.PromotionDetails = &v
    return s
}
func (s *TaobaoOpenTradeGetTrade) SetStepTradeStatus(v string) *TaobaoOpenTradeGetTrade {
    s.StepTradeStatus = &v
    return s
}
func (s *TaobaoOpenTradeGetTrade) SetStepPaidFee(v string) *TaobaoOpenTradeGetTrade {
    s.StepPaidFee = &v
    return s
}
func (s *TaobaoOpenTradeGetTrade) SetSellerNick(v string) *TaobaoOpenTradeGetTrade {
    s.SellerNick = &v
    return s
}
func (s *TaobaoOpenTradeGetTrade) SetPayment(v string) *TaobaoOpenTradeGetTrade {
    s.Payment = &v
    return s
}
func (s *TaobaoOpenTradeGetTrade) SetModified(v util.LocalTime) *TaobaoOpenTradeGetTrade {
    s.Modified = &v
    return s
}
func (s *TaobaoOpenTradeGetTrade) SetBuyerOpenUid(v string) *TaobaoOpenTradeGetTrade {
    s.BuyerOpenUid = &v
    return s
}
